list p=12f675 #include errorlevel -302 __CONFIG _CP_OFF & _CPD_OFF & _BODEN_OFF & _MCLRE_OFF & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT ;\\\\\\\\\\\\\\\\\\\\\ cblock 0x20 TIME0 TIME1 TIME2 endc ;\\\\\\\\\\\\\\\\\\\\\ ORG 0 GOTO MAIN ;\\\\\\\\\\\\\\\\\\\\\ MAIN BSF STATUS,RP0 MOVLW b'00001001' MOVWF TRISIO MOVLW b'00000000' MOVWF ANSEL BCF STATUS,RP0 MOVLW b'00000111' MOVWF CMCON CLRF GPIO BSF FSR,0 ;\\\\\\\\\\\\\\\\\\\\\ LOOP MOVLW D'255' MOVWF TIME0 MOVWF TIME1 LOOP1 BTFSC GPIO,0 ;Hi Active入力の場合  BTFSS GOTO OFF CLRF GPIO MOVLW D'100' ;モード切替時のウエイト(50~255) MOVWF TIME2 DECFSZ TIME2,F GOTO $-1 BTFSS GPIO,3 ;回転方向変更の場合  BTFSC GOTO CW GOTO CCW ;\\\\\\\\\\\\\\\\\\\\\ OFF DECFSZ TIME0,F GOTO LOOP1 DECFSZ TIME1,F GOTO LOOP1 CLRF GPIO GOTO LOOP ;\\\\\\\\\\\\\\\\\\\\\ CW BTFSC FSR,0 GOTO R1 BTFSC FSR,1 GOTO R2 BTFSC FSR,2 GOTO R3 BTFSC FSR,3 GOTO R0 GOTO MAIN CCW BTFSC FSR,0 GOTO R3 BTFSC FSR,1 GOTO R0 BTFSC FSR,2 GOTO R1 BTFSC FSR,3 GOTO R2 GOTO MAIN ;\\\\\\\\\\\\\\\\\\\\\ R0 MOVLW b'00000110' MOVWF GPIO CLRF FSR BSF FSR,0 GOTO LOOP R1 MOVLW b'00010100' MOVWF GPIO CLRF FSR BSF FSR,1 GOTO LOOP R2 MOVLW b'00110000' MOVWF GPIO CLRF FSR BSF FSR,2 GOTO LOOP R3 MOVLW b'00100010' MOVWF GPIO CLRF FSR BSF FSR,3 GOTO LOOP ;\\\\\\\\\\\\\\\\\\\\\ END